home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-06
/
mcmenu.zip
/
MCMENU.DOC
< prev
next >
Wrap
Text File
|
1992-08-22
|
7KB
|
184 lines
MCMenu Docs
Ver 0.000
^ bug fix
^^ minor rev
^ major rev
Turbo Pascal 5.5
Started Nov 18 1991
Current Version 1.520 August 24 1992
Written by: Tony Bigras Bigras@mala.bc.ca
Public Domain, Absolutly NO liability accepted !
Processes Novell type menu file.
See Novell docs for info on menu structure.
Advantages over Novell menu program:
Uses 0K.
Does not leave menufile open so menufile is not locked.
Works off a hard drive, no network needed, So hard drive and network
menus can have the same interface.
Built in screen blanker while on the menu screen.
Mouse support.
Marks submenus for easy identification.
Allows top and bottom wrap around.
Can logout from menu.
Can load TSRs.
Can use environment variable 'MN' for menu name
allowing all users to restart menu with 'MCMENU'.
Can disable escape from menu.
Has hooks for remote procedure calls from other stations.
Improved AlphaKeying { Can you see the diference }
Differences from Novell menu:
No sorting of menu items, they appear in the order in file.
Ignores Novell colour and location entries
everything is standard colour and centred.
Limited to 4000 lines in menu file.
Limited to 21 items per menu 200 sub menus.
NOTE uses Command Line { first } or Environment Var MN to name menu to use.
If no file extension given assumes .MNU.
Mouse support for microsoft mouse:
Left button = RETURN
Right button = ESC
Up and down = up down keys
No mouse pointer just key translation.
Screen blanks after 5 minutes. First keystroke is eaten up when unblanking.
If first character of last line in menu file is '!' then the last
line is a control line. If last line is a control line the first
'!' is discarded and the remainder of the line is scanned for the
following characters.
! no escape
R enable RPC
L Log all program launches to S:\LOG\LOG.TXT
M Have menu return to exit location rather than first item of first menu
How it all works:
The program processes the Novell menu and presents it to the user.
When the user makes their choice the X.BAT file is created in
the current directory. This contains the list of commands for
the selected item. And the command program.path.progname menuname.
The program then cleans up its environment
in preparation for termination. Just before termination the
keyboard buffer is cleared then stuffed with the char X and CR.
upon exiting the program { and any batch file that called it }
the batch file X.BAT is run. This way except for a few bytes
for DOS data space for processing the batch file, no memory is
used. The last line in the X.BAT re-runs MCMENU.
Remote Procedure Calls:
Only started in version 1.00
Hooks will become functional in 2.0.
Requires NetBIOS.
Will eventually allow custom applications to
use all pc resources on net to process their
compute intensive routines while PCs sit on menu.
Suggested applications include:
Raytracing { Renderman Engine }
Fractals { Demo under development }
Please contact me re your requirements in this area.
Known Problems:
Screen blanker can interfere with Intel LanSkool if
teacher broadcasts happen when MCMenu is running.
This appears to be because LanSkool does not
shut off the application it pops up over.
The blanker in MCMenu is based on polled keyboard activity
and is not an interrupt driven function.
Version 0.902 enhancements over ver 0.800
Multi level sub menu support 200 menus total, instead of single sub level.
4000 line max file size, up from 400
Mouse response tuned.
Bug fix re @VARS on first menu and stack overflow on subs.
Menu identifers no longer case sensitive.
Version 0.910
21 items per menu, up from 20.
No wrap on Confirm Exit menu.
SpaceBar no longer a down key on menu.
AlphaKeying on menus.
Better error messaging.
Version 0.912
Escape works from exit menu { before it really escaped!! }
Fixed bug with discarded location info on subs showing in title
Version 0.930
Debug code taken out RPC test code taken out.
Version 1.000
First production release with source code.
Version 1.001
Bug fix of menu alpha keying.
Version 1.002
Bug fix of writing bat file to accomodate dos 5.0 as it wanted to
continue reading past the end of the old batch file due to a
writeln rather than a write.
Version 1.010
Added pathed menu program name to last line of batch file.
DOS searchs for menu data file. IF DOS can't find it then
search program DIR.
This allows the program name to be changed and improves
access to the menu program when users change directories.
Version 1.011
Changed error sound. Corrected spelling error in 'Tuesday'
Version 1.500
Application Logging option. Invoked with the 'L' control , this logs
the item name when launched. Also records username from env var
USRN if available. Currently hard coded to S:\LOG\LOG.TXT
This directory must have Read Open Search and Wrtie rights
and the LOG.TXT must be NONSharable RW
Logs to a ASCII text file format one launch per line with date time.
Version 1.510
NoRerun parameter type control. The following !MC! at the begining
of the last line in a item group will cause the extra batch line that
reruns the menu not to be written. This is usefull when logging out
as the error 'batchfile not found' does not occure, and is usefull
as well for chaining to other menus as the new menu will not have
a batch tail to process when it exits.
Example : !MC! @LOGOUT
A particularly handy use is to have a custom user menu set with
the MN env var and to have that user run a shared menu from
their menu by using !MC! MCMENU Z:SHARED.MNU
The shared menu could return to the users menu
by just using !MC! MCMENU which would use the MN env var
Version 1.520
Return to old menu selection option. Invoked with the 'M' control, this
causes the menu to be reentered at the exit location item. This hack is
done by having an extra command line parameter written to the rerun
menu line. This 2nd parameter is a single string of 2 char
representations of the menu cascade.
Example: MCMENU C:\JUNK.MNU 020302
This will go to item 2 on the first menu { which should be a submenu }
and to item 3 on that menu { which should be a submenu } and then
stop on item 2 which would be the item that was last run.
This extra parameter is normall created by MCMENU when the 'M' control
is active, but could be invoked off a inital menu startup command
provided that the menu also contained the 'M' control
Cosmetic change made to menus to provide white space on the
right side. Maximum menu item width is now 74 chars from
75.
ok